﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.LearnTrain.VehicleTrainingScheduleRecord;
using BCDto.TMS.LearnTrain.VehicleTrainingScheduleRecord.TrainingScheduleRecordRequest;
using System;
using System.Collections.Generic;

namespace BCService.TMS.LearningTrain
{
    public interface IVehicleTrainingScheduleRecordService
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="trainingScheduleRecordRequestDto">培训安排信息</param>
        /// <returns></returns>
        VehicleTrainingScheduleRecordDto Add(AdminDto admin,VehicleTrainingScheduleRecordRequestDto trainingScheduleRecordRequestDto );
        /// <summary>
        /// 追加
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="vehicleTrainingScheduleRecordId">培训安排id</param>
        /// <param name="putDto">待培训司机列表</param>
        /// <returns></returns>
        VehicleTrainingScheduleRecordDto TwiceAddVehicleTrainingScheduleRecord(AdminDto admin, long vehicleTrainingScheduleRecordId, VehicleTrainingScheduleRecordPutDto putDto);
        /// <summary>
        /// 获取培训记录
        /// </summary>
        /// <param name="admin">管理员</param>
        /// <param name="trainingSiteConfigId">待培训司机id</param>
        /// <param name="trainDate">培训日期</param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<VehicleTrainingScheduleRecordViewDto> GetTrainRecord(AdminDto admin, long? trainingSiteConfigId, DateTime? trainDate, int pageIndex, int pageSize);
        /// <summary>
        /// 获取培训场次
        /// </summary>
        /// <param name="admin">管理员信息</param>
        /// <param name="date">日期</param>
        /// <returns></returns>
        IEnumerable<VehicleTrainingScheduleRecordDto> GetTwicePendingRecord(AdminDto admin, DateTime? date);
    }
}